Two dimensional exponential smoothing

ABSTRACT

A method of estimating the average response time and average I/O size that can be used as an alternative for or addition to existing response time and I/O estimation techniques. One method involves initializing values for an average response time and an average I/O size, and initializing an angle. Measurements of the I/O size and response times are received. When measurements of the I/O size and response time are received the technique involves adjusting the average I/O size using the current value of the average I/O size and the received I/O size measurement. The average response time is adjusted using the current value for the average response time and the received response time measurement. The angle value is adjusted using the adjusted average I/O size, the current angle value and the I/O size and time measurements. The slope and y-intercept of a line, formed by plotting the average I/O size verses response time, can then be reported.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. §119(e) to thefollowing co-pending patent application, which is incorporated herein byreference:

Provisional Application Ser. No. 60/878,036, entitled “TWO DIMENSIONALEXPONENTIAL SMOOTHING,” filed on Dec. 29, 2006, by Peter Frazier.

BACKGROUND

Data stored on a data storage device is accessed by I/O commands. Thesecommands are used for reading data stored on a storage device andwriting data to a storage device. If I/O commands are issued randomly toa zone within a storage device, each I/O response time forms a line whenplotted against the size of data being read.

The response time is made up of transfer time, which is the I/O sizemultiplied by the constant transfer rate, and other components that donot depend on I/O size. The other components include rotational latency,seek time and wait time. On a data storage disk, rotational latency timetaken by the disk platter to spin until the data is under the disk headand the read or write command can proceed. Seek time is the time takenwhen the disk head is moving radially to the track on which the databegins. Wait time is the time for other I/O commands to complete duringwhich the operating system or storage device is waiting. The transfertime is the time between the disk head reaching the first block of dataand reading the last block of data. This is the time it takes the diskhead to physically read data off the storage device. The transfer rateis constant for most I/O sizes so transfer time increases linearly withthe amount of data to be transferred. The transfer rate might not beconstant for extremely large I/Os of several gigabytes or larger. If anI/O is so large that it spans two or more physical disk zones, thetransfer rate may change when the disk head enters a new disk zone.

The response time is =to the rotational latency+the seek time+the waittime+(the I/O size/the data transfer rate). This is equal to aconstant+(1/the transfer rate)×the I/O size. Thus the response timeforms the straight line of the form y=ax+b where the slope is (1/thetransfer time) and the y intercept is the sum of rotational latency,seek time and wait time.

Statistical techniques to measure the y-intercept and slope from a dataset include linear regression and exponential smoothing. Linearregression can be used to estimate the y-intercept and slope from thestatic data set. Using linear regression each time a new measurementarrives the linear regression must be re-run on the entire data set toupdate the result. This technique is too computationally expensive forpractical use on a data set where new measurements are constantlyprovided.

Exponential smoothing can estimate the value of a single parameterchanging in time from a stream of noisy measurements of that variable.Exponential smoothing is essentially an average that weights recentmeasurements more heavily than older measurements. An estimate isadjusted towards each new measurement. A configurable step size αcontrols the size of the adjustment according to the equation.

k _(i) =αx _(i)+(1−α)k _(i−1)

The disadvantage of exponential smoothing is that it can only operate onthe single parameter.

SUMMARY

Described below is a method of estimating the average response time andaverage I/O size that can be used as an alternative for an addition toexisting response time and I/O estimation techniques. One techniquedescribed below involves initializing values for an average responsetime and an average I/O size, and initializing an angle. Measurements ofthe I/O size and response times are received. When measurements of theI/O size and response time are received the technique involves adjustingthe average I/O size using the current value of the average I/O size andthe received I/O size measurement. The average response time is adjustedusing the current value for the average response time and the receivedresponse time measurement. The angle value is adjusted using theadjusted average I/O size, the current angle value and the I/O size andtime measurements. The slope and y-intercept of a line, formed byplotting the average I/O size verses response time, can then bereported.

In some cases initial values for the average I/O size and response timeswill be available. One method of estimating the average I/O size andresponse time uses initial values of the average I/O size and responsetime. If initial values are not available, then the average I/O size andresponse time are initialized from the first two measurement values orthe first N measurements values where N is a number of values until atleast two different response times and I/O sizes are received.

Also described below are methods of estimating the average response timeand I/O size from a plurality of measurements. In one form, initialvalues are created for the average response time, average I/O size andan angle value. The initial values are stored on computer readablemedium. At least one step size value is also stored on a computerreadable medium. When new response time measurements and new I/O sizemeasurements are received, the stored response time average I/O size andangle are accessed from the computer readable medium. An updated averageresponse time, average I/O size and angle are determined using theresponse time, average I/O size, angle, step size and new response timeand average I/O measurements. A slope value and intercept value aredetermined from the updated average response time, average I/O size andangle. The updated average response time, average I/O size, angle, slopevalue and intercept value are then stored on computer readable medium.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a graph showing response time versus I/O size.

FIG. 2 is a flow chart showing two dimensional exponential smoothing.

FIG. 3 is a representation of the first step of the algorithm.

FIG. 4 is a representation of the second step of the algorithm.

FIG. 5 is a representation of the third step of the algorithm.

FIG. 6 is a representation of the fourth step of the algorithm.

FIG. 7 is a block diagram of an exemplary large computer system in whichthe techniques described below are implemented.

DETAILED DESCRIPTION

FIG. 1 is a graph showing response time versus I/O size where I/Os areissued randomly to a disk within a storage device. As can be seen inFIG. 1, the response time versus I/O size forms a straight line with they-intercept. In FIG. 1 the y-intercept occurs at 0.0061 seconds. Theresponse time for each I/O command is made up of the time taken totransfer data and other components that do not depend on the I/O size.The time taken to transfer data is the I/O size multiplied by theconstant data transfer rate. The other components are rotationallatency, seek time and wait time. Rotational latency is the time ittakes for the disk platter to spin until data is under the disk head.Seek time is the time for the disk head to moving radially to the trackon which the data begins. Wait time is the time taken by storage deviceswaiting for other I/O commands to conclude. These three components areresponsible for the y-intercept on FIG. 1. These components may varyslowly over time.

Typically the transfer rate is constant for all I/O sizes but variationsdo occur. The transfer rate is not constant for extremely large I/Os ofseveral gigabytes or larger. If an I/O is so large that it spans two ormore disk zones, the transfer rate will change when the disk head entersthe new disk zone. This problem is avoided in Teradata systems and TVSAbecause all I/Os issued are smaller than 3872 blocks or about 2megabytes. The transfer rate of two small I/Os issued to different zoneswill also be different. The number of TVSA physical clusters that spandisk zones is small: of the order, for example, of 20 or fewer onstorage devices with thousands of clusters. For example, 9 gigabytedisks have about 4,500 physical clusters and 73 gigabyte disks haveabout 36,500 physical clusters. The transfer time is the time betweenthe disk head reaching the first block of data and reading the finalblock of data.

The response time is the sum of the rotational latency, seek time, waittime and the I/O size divided by the transfer rate. This is equal to aconstant+(1/the transfer rate)×the I/O size.

Data from a stream of I/O commands can be used to predict how a measuredstorage location, also known as a physical cluster, will behave under anI/O workload with different average I/O sizes. The response must bemeasured at run time because the transfer rate, rotational latency, seektime and wait time all change with run time conditions. In particular,the wait time will increase or decrease with increased or decreased I/Oloads.

To measure the response time or provide an estimate of the response timeat run time the y-intercept and slope of the graph of FIG. 1 need to bemeasured for a particular physical extent. From this the behavior of thephysical extent can be predicted under I/O workload with different I/Osizes.

FIG. 2 is a flowchart showing the process of two dimensional exponentialsmoothing. This process accepts an input stream of noisy measurements oftwo variables. There is a linear relationship between the variables. Oneexample of input variables is an I/O response time and I/O size. Twodimensional exponential smoothing continuously estimates the y-interceptand slope of the linear relationship between the two variables. Firstthree variables are initialized (step 200). These variables represent xand y variables on a graph and an angle θ. Initialization of thevariables depends on whether prior knowledge of the system is availableor not. If prior estimates are available for x, y and θ these values areused to initialize the algorithm. Alternatively, if prior estimates ofthe slope, y-intercept and average I/O size are available, the algorithmcan be initialized using the equations

x_(o) ^(on)=average I/O size

y _(o) ^(on) =y-intercept+slope x average I/O size

θ=arctan(slope)

If no prior knowledge or estimates of response time, average I/O sizeand angle are available the variables can be initialized from the firsttwo measurements. If the first two measurements are at different pointsthe algorithm is initialized using the equations

$x_{o}^{on} = {\frac{1}{2}\left( {x_{1} + x_{2}} \right)}$$y_{o}^{c\; m} = {\frac{1}{2}\left( {y_{1} + y_{2}} \right)}$$\theta = {\arctan \left( \frac{y_{1} - y_{2}}{x_{1} - x_{2}} \right)}$

If the first two measurements are identical then further measurementsmust be collected until a different measurement is received. In thiscase the algorithm is initialized using the following equations

$x_{0}^{on} = {\frac{1}{n}{\sum\limits_{i = 1}^{n}x_{i}}}$$y_{0}^{on} = {\frac{1}{n}{\sum\limits_{i = 1}^{n}y_{i}}}$$0 = {\arctan \left( \frac{y_{1} - y_{n}}{x_{1} - x_{n}} \right)}$

Initial values for the average I/O size might come from prior knowledgeof the I/O workload. Initial values for response times might come frominitial values of transfer rate, rotational latency and seek time asprovided by the drive manufacturer. These values can be combined withsome estimate of the wait time based on estimates of the I/O workload.Initial values might also come from values obtained on similar diskswith similar workloads.

After the variables are initialized count variable i is incremented by 1(step 210).

The system waits until new measurement of the response time and averageI/O size values are received (step 220).

The average I/O size response time and angle are updated using thefollowing equations (step 230).

x_(i)^(on) = ax_(i) + (1 − a)x_(i − 1)^(on)y_(i)^(on) = β y_(i) + (1 − β)y_(i − 1)^(on)$\theta_{i} = {{\gamma \; {\arctan \left( \frac{y_{i} - y_{i}^{on}}{x_{i} - x_{i}^{on}} \right)}} + {\left( {1 - \gamma} \right)\theta_{i - 1}}}$

In these equations a is step size between 0 and 1. The value of the stepsize is chosen to give a particular weighting to the previous computedvalue of the average I/O size and the current I/O measurement. If thestep size a is less than 0.5 then the previous average I/O size carriesmore weight than the current I/O measurement. If the step size isgreater than 0.5, the current I/O measurement carries more weight thanthe previous average I/O size.

Like the step size used for computing the average I/O size, the stepsize β used for updating the response time is between 0 and 1. If thestep size β is less than 0.5 then greater weight is given to theprevious response time. If the step size β is greater than 0.5 greaterweight is given to the response time measurement. A typical value forthe step size is 0.3. The step size used for updating the response timecan be the same as that used for updating the average I/O size.

Step size γ is used to provide weighting to the new angle calculationand the previous angle. The step size γ is between 0 and 1. If the stepsize γ is greater than 0.5 then more weighting is given to the new anglevalue. If the step size is less than 0.5 then more weighting is given tothe previous angle value. Step size γ is related to the step sizes for xand y. If the step sizes for x and y are different the step size for ywill need to take this into account.

The step sizes are determined based on how quickly the true valuesmeasured change with time and how noisy the measurements are. Thesevalues are rotational latency, seek time, wait time and transfer rate.If values change quickly the step size should be larger or increased. Ifvalues change slowly the step size should be smaller or decreased. Ifmeasurements are noisy the step size should be decreased.

The step size can be changed while the algorithm is running. Forexample, the step size can be set to 1/n to give the same result assimple averaging. Other ways the vary the step size include the use ofMcClain's rule, Trigg's rule and generalized harmonic step sizes.

The slope of the line is determined as the tangent of the angle and they-intercept is determined as the current response time minus the currentaverage I/O size multiplied by the slope (step 240). These values canthen be supplied to other parts of the system and used to predict theaverage response time for an average I/O size.

The question is asked whether all measurements have been received (step250). If all measurements have been received the algorithm ends (step265). If all measurements have not been received then the arrow 255 isfollowed back to step 210 and the value of count i is incremented.

TABLE 1 response time I/O size x0cm y0cm theta slope y-intercept 0.0975.4 7.6 0.125 0.012727 0.153 9.8 7.6 0.125 0.012727 0.029 1.3 5.710.0962 0.01348 0.013481 0.019226 0.049 2.4 4.717 0.08204 0.0137130.013714 0.01735 0.151 9.1 6.0319 0.102728 0.014319 0.01432 0.0163510.23 14.2 8.48233 0.14091 0.014697 0.014699 0.016232 0.153 11.5 9.3876310.144537 0.01149 0.011491 0.036667 0.193 12.8 10.41134 0.159076 0.0123040.012304 0.030973 0.12 7 9.387939 0.147353 0.012049 0.012049 0.0342350.056 3.1 7.501557 0.119947 0.012792 0.012793 0.02398 0.159 9.5 8.101090.131663 0.014816 0.014817 0.011626 0.076 4.4 6.990763 0.114964 0.0148830.014884 0.010913 0.146 8.7 7.503534 0.124275 0.015865 0.015866 0.005223

Table 1 shows an example of I/O size and response times as they arereceived. In this example there is no prior knowledge of either theaverage I/O size or the response time. In this case initialization ofvariables y₀ ^(on), x₀ ^(on) and θ₀ occurs after the first twomeasurements are received. When these measurements are received thealgorithm is initialized using the equations

$\begin{matrix}{x_{0}^{on} = {\frac{1}{2}\left( {x_{1} - x_{2}} \right)}} \\{= {\frac{1}{2}\left( {5.4 = 9.8} \right)}} \\{= 7.6}\end{matrix}$ $\begin{matrix}{y_{0}^{on} = {\frac{1}{2}\left( {y_{1} - y_{2}} \right)}} \\{= {\frac{1}{2}\left( {0.097 = 0.153} \right)}} \\{= 0.125}\end{matrix}$$\theta = {\arctan \left( \frac{y_{1} - y_{2}}{x_{1} - x_{2}} \right)}$$\begin{matrix}{\theta = {\arctan \left( \frac{0.097 - 0.153}{5.4 - 9.8} \right)}} \\{= {0.012727\mspace{14mu} {radians}}}\end{matrix}$

Following the initialization of the response time, I/O size and angle,the count value i is incremented.

After the value of i is incremented arrow measurements for currentresponse time and I/O size are received (step 220). In the example shownin Table 1 these measurements are response time of 0.029 seconds and I/Osize of 1.3 MB. The average size I/O size and average response time arecalculated as 5.71 and 0.0962 respectively using the formulas given(step 230). The angle is then calculated as 0.01348 radians. The slopeof the line is estimated as 0.013481 and y-intercept as 0.019226 (step240). As this program has not ended arrow 255 is followed to incrementthe value of i and wait until the next measurements are received. Thenext measurements are response time 0.49 seconds and I/O size 2.4 MB.Iterations continue until either the program is stopped or no more datais received. In the example shown in Table 1 step sizes α, β and γ haveall been set at 0.3. 0.3 is a typical step size for one dimensionalexponential smoothing. As can be seen in Table 1 as more data isreceived the average I/O size and average response time will startconverging. processing modules 705 _(1 . . . y). The parsing enginecontains the program described above for predicting the response time ofthe data storage devices. The parsing engine can use the programdescribed above to organize storage of data in the data storage devicewith the best dedicated response time. Alternatively the program is runin each processing module.

The technique described above can be applied to a single cluster and/orall clusters in a disk zone on a single disk A disk zone is an area of adisk on in which the data has the same number of bits per rotationalangle subtended.

Alternatively, the method can be applied to measurements of any kind oflinear relationship that changes with time. Examples include measuringthe effect of a drug on a patient over time as a function of drugquantity for medical purposes; measuring advertising effectiveness bycalculating the number of customers as a function of advertising dollarsspent over time; measuring the wait time on lines at an amusement parkas a function of the number of people in the line; measuring thetransmission delay in a medium as a function of distance traveled.

The broader method comprises estimating the slope and y-intercept of aline representing a linear relationship that changes in time from aplurality of measurements by first initializing values for a time valueand a measured value and initializing an angle value. The receivedmeasurements have a measured value measurement and time measurement. Forexample, the wait time in a queue of 50 people in an amusement park maybe 10 minutes. The measured value is updated using the followingequation x_(i) ^(on)=αx_(i)+(1−α)x_(i−1) ^(on) where x_(i−1) ^(on) isthe current value for the measured value and x_(i) is the receivedmeasured value measurement. The time value is updated using thefollowing equation y_(i) ^(on)=βy_(i)+(1−β)y_(i−1) ^(on) where y_(i−1)^(on) is the current value for the average time and y_(i) is thereceived time measurement. The angle value is updated using thefollowing equation

$\theta_{i} = {{{\gamma arctan}\left( \frac{y_{i} - y_{i}^{on}}{x_{i} - x_{i}^{on}} \right)} + {\left( {1 - \gamma} \right){\theta_{i - 1}.}}}$

The next slope and angle value can then be reported. The method can beimplemented in a computer program.

The text above describes one or more specific embodiments of a broaderinvention. The invention also is carried out in a variety of alternativeembodiments and thus is not limited to those described here. Those otherembodiments are also within the scope of the following claims.

In the example given in Table 1 the step size as α β and γ are allconstant and are all 0.3. In alternative embodiments the step size maybe different for computing the average I/O size, average response timeand angle. It is also possible to adjust the step size during therunning of the smoothing algorithm.

FIG. 3 shows graphically the first step of the algorithm. In this stepthere is an initial estimate of the average I/O size and response timeand an initial angle. In FIG. 4 a new response time and I/O size x_(i+1)and y_(i+1) are received. Using the equations in box 230 of FIG. 2 a newaverage response time y_(i) ^(on) and new average I/O size x_(i) ^(on)are calculated. In FIG. 5 a new angle θ_(i+1) is calculated using thefinal equation of box 230 in FIG. 2. FIG. 6 shows the new averageresponse time, new average I/O size and new angle. This process isrepeated every time new measurements for the response time and I/O sizeare received.

FIG. 7 shows an example of one type of computer system in which theabove techniques of data cache management is implemented. The computersystem is a data warehousing system 700, such as a TERADATA datawarehousing system sold by NCR Corporation, in which vast amounts ofdata are stored on many disk-storage facilities that are managed by manyprocessing units. In this example, the data warehouse 700 includes arelational database management system (RDBMS) built upon a massivelyparallel processing (MPP) platform. Other types of database systems,such as object-relational database management systems (ORDBMS) or thosebuilt on symmetric multi-processing (SMP) platforms, are also suited foruse here.

As shown here, the data warehouse 700 includes one or more processingmodules 705 _(1 . . . y) that manage the storage and retrieval of datain data-storage facilities 710 _(1 . . . y). Each of the processingmodules 705 _(1 . . . y) manages a portion of a database that is storedin a corresponding one of the data-storage facilities 710 _(1 . . . y).Each of the data-storage facilities 710 _(1 . . . y) includes one ormore disk drives. The processing modules manage measurement andprediction of I/O size and response times.

A parsing engine 720 organizes the storage of data and the distributionof data objects stored in the disk drives among the processing modules705 _(1 . . . y). The parsing engine 720 also coordinates the retrievalof data from the data storage facilities 710 _(1 . . . y) in response toqueries received from a user at a mainframe 730 or a client computer 735through a wired or wireless network 740. A data cache 745 _(1 . . . y)managed is stored in the memory of the

1. A method of estimating the slope and y-intercept of a linerepresenting response time versus I/O size from a plurality ofmeasurements comprising: a) initializing values for an average responsetime and average I/O size b) initializing an angle value c) receiving asize measurement and response time measurement for an I/O d) adjustingthe average I/O size using a current value for the I/O size and thereceived I/O size measurement e) adjusting the average response timeusing a current value for the average response time and the receivedtime measurement f) adjusting the angle value using the adjusted averageI/O size, the current angle value, and size and time measurements fromthe I/O g) reporting a next slope using the angle value h) reporting anext y-intercept
 2. The method of claim 1 further including the step ofiterating the algorithm from step c).
 3. The method of claim 1 whereinthe step of adjusting the average I/O size adjusts the average I/O sizeaccording tox _(i) ^(on) =αx _(i)+(1−α)x _(i−1) ^(on) where x_(i) ^(on) is the newaverage I/O size x_(i−1) ^(on) is the current average I/O size α is astep size x_(i) is the received I/O size measurement.
 4. The method ofclaim 1 wherein the step of adjusting the average response time adjuststhe average response time according toy _(i) ^(on) =βy _(i)+(1−β)y _(i−1) ^(on) where y_(i−1) ^(on) is the newaverage response time y_(i−1) ^(on) is the current average response timeβ is a constant step size y_(i) is the received response timemeasurement.
 5. The method of claim 1 wherein the step of adjusting theangle value adjusts the angle according to$\theta_{i} = {{{\gamma arctan}\left( \frac{\left( {y_{i} - y_{i}^{c\; m}} \right)}{\left( {x_{i} - x_{i}^{c\; m}} \right)} \right)} + {\left( {1 - \gamma} \right)\theta_{i - 1}}}$where θ_(i) is the next angle γ is a step size y_(i) is the receivedresponse time measurement y_(i) ^(on) is the next average response timex_(i) is the received size measurement x_(i) ^(on) is the next averagesize estimate θ¹⁻¹ is the current angle value.
 6. The method of claim 1wherein the slope is determined according tom _(i)=tan(θ_(i)).
 7. The method of claim 1 wherein the y-intercept iscalculated according tob _(i) =y _(i) ^(on) −x _(i) ^(on) m _(i).
 8. The method of claim 1further comprising the step of reporting the average I/O size.
 9. Themethod of claim 1 further comprising the step of reporting the averageI/O response time.
 10. The method of claim 1 wherein the first part isinitialized with an estimate of the average I/O size.
 11. The method ofclaim 1 wherein the first part is initialized with the average of thefirst two read measurements from I/O.
 12. The method of claim 1 whereinthe second part is initialized with an estimate of y-intercept, slopetime average I/O size.
 13. The method of claim 1 wherein the second partis initialized with the first two time measurements.
 14. The method ofclaim 1 wherein the angle is initialized as a function of the slope. 15.The method of claim 1 wherein the angle is initialized according to$\theta_{0} = {{\arctan \left( \frac{y_{1} - y_{2}}{x_{1} - x_{2}} \right)}.}$16. The method of claim 1 wherein the first part is initialized with theaverage of the first N read measurements where N is an integer.
 17. Themethod of claim 1 wherein the second part is initialized with theaverage of the first N time measurements wherein N is an integer. 18.The method of claim 1 wherein the angle is initialized according to$\theta_{0} = {{\arctan \left( \frac{y_{1} - y_{n}}{x_{1} - x_{n}} \right)}.}$19. The method of claim 3 wherein α is 0.3.
 20. The method of claim 4wherein β is 0.3.
 21. The method of claim 5 wherein γ is 0.3.
 22. Amethod of measuring how a storage location will perform under I/Oworkload comprising; creating initial values for the average responsetime, average I/O size and an angle, storing the initial values on acomputer readable medium, storing at least one step size on a computerreadable medium, waiting to receive a new response time measurement anda new I/O size measurement, accessing the stored average response time,average I/O size and angle from the computer readable medium,determining an updated average response time, avenge I/O size and angleusing the average response time, average I/O size, angle, step size andnew response time and I/O measurements, determining a slope value andintercept value from the updated average response time, average I/O sizeand angle, and storing the updated average response time, average I/Osize, angle, slope value and intercept value one computer readablemedium.
 23. A method of estimating the average response time and I/Osize from a plurality of measurements comprising; creating initialvalues for the average response time, average I/O size and an angle,storing the initial values on a computer readable medium, storing atleast one step size on a computer readable medium, waiting to receive anew response time measurement and a new I/O size measurement, accessingthe stored average response time, average I/O size and angle from thecomputer readable medium, determining an updated average response time,average I/O size and angle using the average response time, average I/Osize, angle, step size and new response time and I/O measurements,determining a slope value and intercept value from the updated averageresponse time, average I/O size and angle, and storing the updatedaverage response time, average I/O size, angle, slope value andintercept value one computer readable medium.
 24. The method of claim 23further comprising waiting for a query of the slope value and interceptvalue and accessing the slope value and intercept value from thecomputer readable medium upon receipt of the query.
 25. A computerprogram stored on a tangible storage medium for use in estimating theaverage response time and I/O size from a plurality of measurements, theprogram including executable instructions that cause a computer to;create initial values for the average response time, average I/O sizeand an angle, store the initial values on a tangible storage medium,store at least on step size on a tangible storage medium, wait toreceive a new response time measurement and a new I/O size measurement,access the stored average response time, average I/O size and angle fromthe tangible storage medium, determine an updated average response time,average I/O size and angle using the average response time, average I/Osize, angle, step size and new response time and I/O measurements,determine a slope value and intercept values from the updated averageresponse time, average I/O size and angle, and store the updated averageresponse time, average I/O size, angle, slope value and intercept valueon tangible storage medium.
 26. A data storage management system, wherethe system is configured to: initialize variables for response time, I/Oand a third variable; receive a read measurement and a time measurementfor an I/O; use received measurements and initial measurements orprevious measurements to predict variables that relate the response timeto the size of the I/O and store the variables.
 27. A method ofestimating the slope and y-intercept of a line representing a linearrelationship that changes in time from a plurality of measurementscomprising: a) initializing values for a time value and a measured valueb) initializing an angle value c) receiving a measured value measurementand time measurement d) adjusting the measured value using a currentvalue for the measured value and the received measured value measuremente) adjusting the average time using a current value for the average timeand the received time measurement f) adjusting the angle value using theadjusted average measured value, the current angle value, and receivedmeasured value and time measurements g) reporting a next slope using theangle value h) reporting a next y-intercept